
import fetch from 'axios'
import q from 'querystring'

// 判断是否为开发环境还是生产环境
// if (process.env.NODE_ENV === 'development') {
//     var commonUrl = 'api'
// }
// 目前未做关于production的环境配置 暂且使用dev
var commonUrl = '/api'

/**
 * api请求
 * @param {string} url     请求地址
 * @param {string} method  请求方法
 * @param {string} baseURL 默认域名地址
 * @param {object} params  请求参数（GET）
 * @param {object} data    请求参数（非GET）
 */
// 超时时间
fetch.defaults.timeout = 5000
// 请求拦截器 添加header
fetch.interceptors.request.use(
    config => {
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

export default ({ url, method, baseURL, params, data }) => {
    const conf = {
        url,
        method,
        baseURL: baseURL || commonUrl,
    }
    const _conf = {
        headers: {
        },
    }
    if (method.toUpperCase() === 'GET' || params) {
        _conf.params = params
    } else {
        _conf.headers['Content-Type'] = 'application/x-www-form-urlencoded'
        // 对data数据进行封装拼接成字符串传给java 否则用json传输过去后端无法接受参数
        _conf.data = q.stringify(data)
    }
    const req = Object.assign(conf, _conf)

    return fetch(req)
}